package com.hejjon.knowledgebase.service;

import com.hejjon.knowledgebase.entity.UserInfo;
import com.hejjon.knowledgebase.model.dto.UserDTO;
import com.hejjon.knowledgebase.model.request.UserInfoRequest;
import com.hejjon.knowledgebase.vo.UserInfoVO;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author caoshi
 * @since 2022-12-06
 */
public interface UserInfoService {


    /**
     * 根据用户名查询用户 (用户名唯一)
     * @param username 用户名
     * @return
     */
    UserInfo getByUserName(String username);

    /**
     * 更新最近一次登录时间
     * @param userId    用户ID
     */
    void updateLastLoginTime(Long userId);

    /**
     * 根据用户id获取用户信息
     * @param id 用户id
     * @return
     */
    UserInfoVO getById(Long id);

    /**
     * 更新用户信息
     * @param request
     * @return
     */
    Integer updateUser(UserInfoRequest request);

    /**
     *  解析token 获取登录用户信息
     * @param token 登录token
     * @return
     */
    UserDTO getUserByToken(String token);


}
